package com.ysx.server.service;

import com.github.pagehelper.Page;
import com.ysx.server.pojo.dto.GoodsAddDTO;
import com.ysx.server.pojo.dto.GoodsDTO;
import com.ysx.server.pojo.dto.GoodsPageQueryDTO;
import com.ysx.server.pojo.entity.Goods;
import com.ysx.server.pojo.vo.GoodsVO;

import java.util.List;

public interface GoodsService {
    /**
     * 商品查询 分页 名称 状态
     * @param goodsPageQueryDTO
     * @return
     */
    Page<Goods> page(GoodsPageQueryDTO goodsPageQueryDTO);

    /**
     * 保存商品信息
     * @param goods
     * @return
     */
    boolean save(Goods goods);

    /**
     * 更新商品信息
     * @param goodsDTO
     * @return
     */
    boolean update(GoodsDTO goodsDTO);

    /**
     * 根据id删除商品信息
     * @param id
     * @return
     */
    boolean delete(Long id);

    /**
     * 通过用户id获得用户发布商品
     * @param userId
     */
    List<Goods> getByUserId(Long userId);

    /**
     * 全部商品
     * @return
     */
    List<Goods> getGoods();

    /**
     * 最新商品
     * @return
     */
    List<Goods> getNewGoods();

    /**
     * 通过商品名搜索
     * @param name
     * @return
     */
    List<Goods> getByName(String name);

    /**
     * 通过商品id查找商品
     * @param id
     * @return
     */
    GoodsVO getById(Long id);

    /**
     * 添加商品及商品类型
     * @param goodsAddDTO
     * @return
     */
    boolean addGoodsAndCategory(GoodsAddDTO goodsAddDTO);
}
